
/** @file TrajectoryPrimitives.h
* @brief A tool that scans for a string in a very fast and robust way
* @author Ammar Qammaz (AmmarkoV)
*/

#ifndef TRAJECTORYPRIMITIVES_H_INCLUDED
#define TRAJECTORYPRIMITIVES_H_INCLUDED


/** @brief Enumerator for the IDs of TrajectoryPrimitives so we can know what the result was*/
enum { 
 TRAJECTORYPRIMITIVES_EMPTY=0,
 TRAJECTORYPRIMITIVES_SAVED_FILE_DEPTH_SCALE, // 1 
 TRAJECTORYPRIMITIVES_COMMENT, // 2 
 TRAJECTORYPRIMITIVES_NEAR_CLIP, // 3 
 TRAJECTORYPRIMITIVES_FAR_CLIP, // 4 
 TRAJECTORYPRIMITIVES_ARROW, // 5 
 TRAJECTORYPRIMITIVES_SILENT, // 6 
 TRAJECTORYPRIMITIVES_SHADER, // 7 
 TRAJECTORYPRIMITIVES_POSE_ROTATION_ORDER, // 8 
 TRAJECTORYPRIMITIVES_POSERAW, // 9 
 TRAJECTORYPRIMITIVES_POSE4X4, // 10 
 TRAJECTORYPRIMITIVES_POSEQ, // 11 
 TRAJECTORYPRIMITIVES_LIGHT, // 12 
 TRAJECTORYPRIMITIVES_POSE, // 13 
 TRAJECTORYPRIMITIVES_POS, // 14 
 TRAJECTORYPRIMITIVES_FOG, // 15 
 TRAJECTORYPRIMITIVES_DONE_DECLARING_OBJECTS, // 16 
 TRAJECTORYPRIMITIVES_OBJECT_ROTATION_ORDER, // 17 
 TRAJECTORYPRIMITIVES_MOVE_VIEW, // 18 
 TRAJECTORYPRIMITIVES_MOVE, // 19 
 TRAJECTORYPRIMITIVES_DEBUG, // 20 
 TRAJECTORYPRIMITIVES_TIMESTAMP, // 21 
 TRAJECTORYPRIMITIVES_AUTOREFRESH, // 22 
 TRAJECTORYPRIMITIVES_INTERPOLATE_TIME, // 23 
 TRAJECTORYPRIMITIVES_ALWAYS_SHOW_LAST_FRAME, // 24 
 TRAJECTORYPRIMITIVES_BACKGROUND, // 25 
 TRAJECTORYPRIMITIVES_COMPOSITE_OBJECT, // 26 
 TRAJECTORYPRIMITIVES_RIGID_OBJECT, // 27 
 TRAJECTORYPRIMITIVES_OBJECT_TYPE, // 28 
 TRAJECTORYPRIMITIVES_OBJECTTYPE, // 29 
 TRAJECTORYPRIMITIVES_OBJECT, // 30 
 TRAJECTORYPRIMITIVES_OBJ_OFFSET, // 31 
 TRAJECTORYPRIMITIVES_OBJ, // 32 
 TRAJECTORYPRIMITIVES_EVENT, // 33 
 TRAJECTORYPRIMITIVES_PROJECTION_MATRIX, // 34 
 TRAJECTORYPRIMITIVES_EMULATE_PROJECTION_MATRIX, // 35 
 TRAJECTORYPRIMITIVES_MODELVIEW_MATRIX, // 36 
 TRAJECTORYPRIMITIVES_SCALE_WORLD, // 37 
 TRAJECTORYPRIMITIVES_GENERATE_ANGLE_OBJECTS, // 38 
 TRAJECTORYPRIMITIVES_OFFSET_ROTATIONS, // 39 
 TRAJECTORYPRIMITIVES_MAP_ROTATIONS, // 40 
 TRAJECTORYPRIMITIVES_FRAME_RESET, // 41 
 TRAJECTORYPRIMITIVES_FRAME, // 42 
 TRAJECTORYPRIMITIVES_RATE, // 43 
 TRAJECTORYPRIMITIVES_AFFIX_OBJ_TO_OBJ_FOR_NEXT_FRAMES, // 44 
 TRAJECTORYPRIMITIVES_INCLUDE, // 45 
 TRAJECTORYPRIMITIVES_SMOOTH, // 46 
 TRAJECTORYPRIMITIVES_CONNECTOR, // 47 
 TRAJECTORYPRIMITIVES_HAND_POINTS, // 48 
 TRAJECTORYPRIMITIVES_PQ, // 49 
 TRAJECTORYPRIMITIVES_P, // 50 
 TRAJECTORYPRIMITIVES_END_OF_ITEMS
};



/** @brief Scan a string for one of the words of the TrajectoryPrimitives word set
* @ingroup stringParsing
* @param Input String , to be scanned
* @param Length of Input String
* @retval See above enumerator*/
 int scanFor_TrajectoryPrimitives(const char * str,unsigned int strLength); 

#endif
